package com.nbcio.cd.domain;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.nbcio.common.tenant.core.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serial;

/**
 * 云网盘文件夹对象 cd_folder
 *
 * @author nbacheng
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("cd_folder")
public class CdFolder extends TenantEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 文件夹ID
     */
    @TableId(value = "folder_id")
    private Long folderId;

    /**
     * 文件夹名称
     */
    private String folderName;

    /**
     * 父文件夹ID，0为根目录
     */
    private Long parentId;

    /**
     * 文件夹路径
     */
    private String folderPath;

    /**
     * 文件夹类型：personal个人，shared共享，project项目
     */
    private String folderType;

    /**
     * 文件夹所有者ID
     */
    private Long ownerId;

    /**
     * 关联项目ID（项目文件夹）
     */
    private Long projectId;

    /**
     * 文件夹大小（字节）
     */
    private Long folderSize;

    /**
     * 文件数量
     */
    private Integer fileCount;

    /**
     * 子文件夹数量
     */
    private Integer folderCount;

    /**
     * 是否共享
     */
    private Boolean isShared;

    /**
     * 分享码
     */
    private String shareCode;

    /**
     * 分享过期时间
     */
    private java.util.Date shareExpireTime;

    /**
     * 访问级别：private私有，public公开，restricted受限
     */
    private String accessLevel;

    /**
     * 状态（0正常 1停用）
     */
    private String status;

    /**
     * 创建部门
     */
    private Long createDept;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableLogic
    private String delFlag;
}
